home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / painte1a / frmabout.frm (.txt) < prev    next >
Visual Basic Form  |  1999-09-09  |  9KB  |  211 lines

  1. VERSION 5.00
  2. Begin VB.Form frmAbout 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "About ProGfx"
  5.    ClientHeight    =   3630
  6.    ClientLeft      =   45
  7.    ClientTop       =   330
  8.    ClientWidth     =   5865
  9.    ClipControls    =   0   'False
  10.    Icon            =   "frmAbout.frx":0000
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   3630
  15.    ScaleWidth      =   5865
  16.    ShowInTaskbar   =   0   'False
  17.    StartUpPosition =   1  'CenterOwner
  18.    Tag             =   "About ProGfx"
  19.    Begin VB.CommandButton cmdOK 
  20.       Cancel          =   -1  'True
  21.       Caption         =   "OK"
  22.       Default         =   -1  'True
  23.       Height          =   345
  24.       Left            =   4245
  25.       TabIndex        =   0
  26.       Tag             =   "OK"
  27.       Top             =   2625
  28.       Width           =   1467
  29.    End
  30.    Begin VB.CommandButton cmdSysInfo 
  31.       Caption         =   "&System Info..."
  32.       Height          =   345
  33.       Left            =   4260
  34.       TabIndex        =   1
  35.       Tag             =   "&System Info..."
  36.       Top             =   3075
  37.       Width           =   1452
  38.    End
  39.    Begin VB.Label lblDescription 
  40.       ForeColor       =   &H00000000&
  41.       Height          =   1170
  42.       Left            =   1050
  43.       TabIndex        =   5
  44.       Tag             =   "App Description"
  45.       Top             =   1125
  46.       Width           =   4092
  47.    End
  48.    Begin VB.Label lblTitle 
  49.       Alignment       =   2  'Center
  50.       Caption         =   "PRO Gfx"
  51.       BeginProperty Font 
  52.          Name            =   "Arial"
  53.          Size            =   24
  54.          Charset         =   0
  55.          Weight          =   700
  56.          Underline       =   0   'False
  57.          Italic          =   -1  'True
  58.          Strikethrough   =   0   'False
  59.       EndProperty
  60.       ForeColor       =   &H00FF0000&
  61.       Height          =   480
  62.       Left            =   1050
  63.       TabIndex        =   4
  64.       Tag             =   "Application Title"
  65.       Top             =   240
  66.       Width           =   4092
  67.    End
  68.    Begin VB.Line Line1 
  69.       BorderColor     =   &H00808080&
  70.       BorderStyle     =   6  'Inside Solid
  71.       Index           =   1
  72.       X1              =   225
  73.       X2              =   5657
  74.       Y1              =   2430
  75.       Y2              =   2430
  76.    End
  77.    Begin VB.Line Line1 
  78.       BorderColor     =   &H00FFFFFF&
  79.       BorderWidth     =   2
  80.       Index           =   0
  81.       X1              =   240
  82.       X2              =   5657
  83.       Y1              =   2445
  84.       Y2              =   2445
  85.    End
  86.    Begin VB.Label lblVersion 
  87.       Caption         =   "Version .20"
  88.       Height          =   225
  89.       Left            =   1065
  90.       TabIndex        =   3
  91.       Tag             =   "Version"
  92.       Top             =   780
  93.       Width           =   4095
  94.    End
  95.    Begin VB.Label lblDisclaimer 
  96.       Caption         =   "Warning: This program is to be used and viewed by Red Dawn Productions only!"
  97.       ForeColor       =   &H00000000&
  98.       Height          =   825
  99.       Left            =   255
  100.       TabIndex        =   2
  101.       Tag             =   "Warning: ..."
  102.       Top             =   2625
  103.       Width           =   3870
  104.    End
  105. Attribute VB_Name = "frmAbout"
  106. Attribute VB_GlobalNameSpace = False
  107. Attribute VB_Creatable = False
  108. Attribute VB_PredeclaredId = True
  109. Attribute VB_Exposed = False
  110. ' Reg Key Security Options...
  111. Const KEY_ALL_ACCESS = &H2003F
  112.                                           
  113. ' Reg Key ROOT Types...
  114. Const HKEY_LOCAL_MACHINE = &H80000002
  115. Const ERROR_SUCCESS = 0
  116. Const REG_SZ = 1                         ' Unicode nul terminated string
  117. Const REG_DWORD = 4                      ' 32-bit number
  118. Const gREGKEYSYSINFOLOC = "SOFTWARE\Microsoft\Shared Tools Location"
  119. Const gREGVALSYSINFOLOC = "MSINFO"
  120. Const gREGKEYSYSINFO = "SOFTWARE\Microsoft\Shared Tools\MSINFO"
  121. Const gREGVALSYSINFO = "PATH"
  122. Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long
  123. Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long
  124. Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
  125. Private Sub Form_Load()
  126.     lblVersion.Caption = "Version " & App.Major & "." & App.Minor & "." & App.Revision
  127.     lblTitle.Caption = App.Title
  128. End Sub
  129. Private Sub cmdSysInfo_Click()
  130.         Call StartSysInfo
  131. End Sub
  132. Private Sub cmdOK_Click()
  133.         Unload Me
  134. End Sub
  135. Public Sub StartSysInfo()
  136.     On Error GoTo SysInfoErr
  137.         Dim rc As Long
  138.         Dim SysInfoPath As String
  139.         
  140.         ' Try To Get System Info Program Path\Name From Registry...
  141.         If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then
  142.         ' Try To Get System Info Program Path Only From Registry...
  143.         ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC, SysInfoPath) Then
  144.                 ' Validate Existance Of Known 32 Bit File Version
  145.                 If (Dir(SysInfoPath & "\MSINFO32.EXE") <> "") Then
  146.                         SysInfoPath = SysInfoPath & "\MSINFO32.EXE"
  147.                         
  148.                 ' Error - File Can Not Be Found...
  149.                 Else
  150.                         GoTo SysInfoErr
  151.                 End If
  152.         ' Error - Registry Entry Can Not Be Found...
  153.         Else
  154.                 GoTo SysInfoErr
  155.         End If
  156.         
  157.         Call Shell(SysInfoPath, vbNormalFocus)
  158.         
  159.         Exit Sub
  160. SysInfoErr:
  161.         MsgBox "System Information Is Unavailable At This Time", vbOKOnly
  162. End Sub
  163. Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String, ByRef KeyVal As String) As Boolean
  164.         Dim i As Long                                           ' Loop Counter
  165.         Dim rc As Long                                          ' Return Code
  166.         Dim hKey As Long                                        ' Handle To An Open Registry Key
  167.         Dim hDepth As Long                                      '
  168.         Dim KeyValType As Long                                  ' Data Type Of A Registry Key
  169.         Dim tmpVal As String                                    ' Tempory Storage For A Registry Key Value
  170.         Dim KeyValSize As Long                                  ' Size Of Registry Key Variable
  171.         '------------------------------------------------------------
  172.         ' Open RegKey Under KeyRoot {HKEY_LOCAL_MACHINE...}
  173.         '------------------------------------------------------------
  174.         rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' Open Registry Key
  175.         
  176.         If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError          ' Handle Error...
  177.         
  178.         tmpVal = String$(1024, 0)                             ' Allocate Variable Space
  179.         KeyValSize = 1024                                       ' Mark Variable Size
  180.         
  181.         '------------------------------------------------------------
  182.         ' Retrieve Registry Key Value...
  183.         '------------------------------------------------------------
  184.         rc = RegQueryValueEx(hKey, SubKeyRef, 0, KeyValType, tmpVal, KeyValSize)    ' Get/Create Key Value
  185.                                                 
  186.         If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError          ' Handle Errors
  187.         
  188.         tmpVal = VBA.Left(tmpVal, InStr(tmpVal, VBA.Chr(0)) - 1)
  189.         '------------------------------------------------------------
  190.         ' Determine Key Value Type For Conversion...
  191.         '------------------------------------------------------------
  192.         Select Case KeyValType                                  ' Search Data Types...
  193.         Case REG_SZ                                             ' String Registry Key Data Type
  194.                 KeyVal = tmpVal                                     ' Copy String Value
  195.         Case REG_DWORD                                          ' Double Word Registry Key Data Type
  196.                 F